package com.dks.repository;

import com.dks.models.Course;
import com.dks.result.ResultModel;
import com.dks.util.PageInfo;

import java.util.List;
import java.util.Map;

public interface ICourseRepository {

    Integer insert(Course course);

    Integer update(Course course);

    Integer delete(Integer id);

    Course select(Integer id);

    Integer cntByMap(Map<String, Object> map);

    List<Integer> getByMap(Map<String, Object> map);

    List<Course> getByMapList(Map<String, Object> map);

    Integer updateByCode(Course course);

    Course selectByBfCode(String bfCode);

    ResultModel<Object> getCourseList(String courseStage, Integer pageNum, Integer pageSize,String name);

    ResultModel<Object> getCourseInfo(Integer courseId);

    ResultModel<PageInfo<Course>> getList(String courseName, String courseCategory, String courseStage, Integer pageNum, Integer pageSize);

    ResultModel<Object> getRenewalReminder(Integer userId);

    ResultModel<Object> getCourseSignList(Integer parentId,String beginTime, String endTime,Integer pageSize, Integer pageNum);

    ResultModel<Object> getWaitCourseList(Integer parentId);

    ResultModel<Object> getAttendCourseList(Integer parentId);

    ResultModel<Object> getRecommendCourseList(Integer pageNum, Integer pageSize);

    ResultModel<Object> getSingleDayCourseList(String beginTime, String endTime, Integer pageNum, Integer pageSize,Integer parentId,Integer studentId,String courseCategory,Integer ageMin,Integer ageMax);

    ResultModel<Object> getCourseCategory(String name);

    ResultModel<Object> getAttendCoursRemindeList(Integer pageNum, Integer pageSize);

    ResultModel<Object> getAwitHandleList(Integer pageNum, Integer pageSize,Long userId);

    ResultModel<Object> getAttendanceCourseList(Integer pageNum, Integer pageSize, Integer classId, String classAttendStatus, String studentName, String parentName);

    ResultModel<Object> getClassRecordList(Integer pageNum, Integer pageSize, Integer studentId);

    ResultModel<Object> getTeacherCourseCategoryList(Integer teacherId, Integer pageNum, Integer pageSize);

    ResultModel<Object> getTeacherToDoList(Integer pageNum, Integer pageSize, Long teacherId);
}
